package acm.蓝桥19;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Arrays;

/**
 * 给定 n 个正整数 Ai，请找出两个数 i, j 使得 i < j 且 Ai 和 Aj 存在大于 1 的公因数。 如果存在多组 i, j，请输出 i
 * 最小的那组。如果仍然存在多组 i, j，请输出 i 最小的所有方案中 j 最小的那组。 暴力思路：遍历i，每次寻找i右侧与他存在公约数的j
 * 这题应该是倍增算法
 */
public class C公约数 {
	static int maxN = (int) (1e5 + 10);
	static int[] arr = new int[maxN];
	static int[][] st =new int[maxN][(int) Math.ceil(Math.log(maxN)/Math.log(2))];
	static int n;

	public static void main(String[] args) {
		Reader sc = new Reader();
		n = sc.nextInt();
		for (int i = 1; i <= n; i++) {
			arr[i] = sc.nextInt();
		}
		int[] res = fun();
		System.out.println(res[0]+" "+res[1]);
	}

	/**
	 * 暴力
	 */
	public static int[] fun() {
		for (int i = 1; i < n; i++) {
			for (int j = i + 1; j <= n; j++) {
				if (gcd(arr[i], arr[j]) != 1) {
					return new int[] { i, j };
				}
			}
		}
		return null;
	}
	public static int gcd(int a, int b) {
		return b == 0 ? a : gcd(b, a % b);
	}

	static class Reader {
		static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));

		public Reader(Object... o) {
		}

		public int nextInt() {
			try {
				in.nextToken();
			} catch (Exception ignored) {
			}
			return (int) in.nval;
		}
	}
}
